//package com.atsmart.app.activity;
//
//import java.io.ByteArrayOutputStream;
//import java.io.File;
//import java.io.FileNotFoundException;
//import java.io.IOException;
//import java.io.OutputStream;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//
//import android.app.Activity;
//import android.app.AlertDialog;
//import android.content.ActivityNotFoundException;
//import android.content.ContentValues;
//import android.content.Context;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.database.Cursor;
//import android.graphics.Bitmap;
//import android.graphics.BitmapFactory;
//import android.graphics.Matrix;
//import android.graphics.drawable.BitmapDrawable;
//import android.hardware.Camera;
//import android.hardware.Camera.ShutterCallback;
//import android.hardware.Sensor;
//import android.hardware.SensorEvent;
//import android.hardware.SensorEventListener;
//import android.hardware.SensorManager;
//import android.media.ExifInterface;
//import android.net.Uri;
//import android.os.Bundle;
//import android.os.Environment;
//import android.os.Handler;
//import android.provider.MediaStore;
//import android.provider.MediaStore.Images.Media;
//import android.util.Log;
//import android.view.ContextThemeWrapper;
//import android.view.KeyEvent;
//import android.view.SurfaceHolder;
//import android.view.SurfaceView;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.WindowManager;
//import android.widget.ArrayAdapter;
//import android.widget.Button;
//import android.widget.ImageButton;
//import android.widget.ImageView;
//import android.widget.ListAdapter;
//import android.widget.Toast;
//
//import com.atsmart.app.BizApp;
//import com.atsmart.app.R;
//import com.atsmart.app.utils.BitmapUtils;
//import com.atsmart.app.utils.ImageMerger;
//import com.atsmart.app.utils.PersistentKeyUtil;
//import com.atsmart.app.utils.PrefsUtils;
//import com.atsmart.app.utils.StringUtil;
//
//public class CameraActivity extends Activity implements OnClickListener {
//	private static final String TAG = "CameraActivity";
//	/* 用来标识请求照相功能的activity */
//	private static final int CAMERA_WITH_DATA = 3023;
//	/* 用来标识请求gallery的activity */
//	private static final int PHOTO_PICKED_WITH_DATA = 3021;
//	/* 拍照的照片存储位置 */
//	private static final File PHOTO_DIR = new File(
//			Environment.getExternalStorageDirectory() + "/ASoohue/CameraCache");
//	private File mCurrentPhotoFile;// 照相机拍照得到的图片
//	Button buttonOK, send;
//	ImageView imageViewPhoto;
//	String FileName, selectedImagePath;
//
//
//	Uri imgUri;
//
//	/** Called when the activity is first created */
//	@Override
//	public void onCreate(Bundle savedInstanceState) {
//		super.onCreate(savedInstanceState);
//		setContentView(R.layout.camera_capture);
//		buttonOK = (Button) findViewById(R.id.ButtonOK);
//		send = (Button) findViewById(R.id.send);
//		imageViewPhoto = (ImageView) findViewById(R.id.imageViewPhoto);
//		buttonOK.setOnClickListener(this);
//
//	}
//
//	public void onClick(View v) {
//		switch (v.getId()) {
//		case R.id.ButtonOK:
//
//			doPickPhotoAction();
//			break;
//		default:
//			break;
//		}
//	}
//
//	private void doPickPhotoAction() {
//		Context context = CameraActivity.this;
//		// Wrap our context to inflate list items using correct theme
//		final Context dialogContext = new ContextThemeWrapper(context,
//				android.R.style.Theme_Light);
//		String cancel = "返回";
//		String[] choices;
//		choices = new String[2];
//		choices[0] = getString(R.string.take_photo); // 拍照
//		choices[1] = getString(R.string.pick_photo); // 从相册中选择
//		final ListAdapter adapter = new ArrayAdapter<String>(dialogContext,
//				android.R.layout.simple_list_item_1, choices);
//		final AlertDialog.Builder builder = new AlertDialog.Builder(
//				dialogContext);
//		builder.setTitle(R.string.attachToContact);
//		builder.setSingleChoiceItems(adapter, -1,
//				new DialogInterface.OnClickListener() {
//					public void onClick(DialogInterface dialog, int which) {
//						dialog.dismiss();
//						switch (which) {
//						case 0: {
//							String status = Environment
//									.getExternalStorageState();
//							if (status.equals(Environment.MEDIA_MOUNTED)) {// 判断是否有SD卡
//								doTakePhoto();// 用户点击了从照相机获取
//							} else {
//								Toast.makeText(CameraActivity.this, "没有SD卡",
//										Toast.LENGTH_LONG).show();
//							}
//							break;
//						}
//						case 1:
//							doPickPhotoFromGallery();// 从相册中去获取
//							break;
//						}
//					}
//				});
//		builder.setNegativeButton(cancel,
//				new DialogInterface.OnClickListener() {
//					public void onClick(DialogInterface dialog, int which) {
//						dialog.dismiss();
//					}
//				});
//
//		builder.create().show();
//	}
//
//	/**
//	 * 拍照获取图片
//	 * 
//	 */
//	protected void doTakePhoto() {
//		try {
//			// Launch camera to take photo for selected contact
//			if (!PHOTO_DIR.exists()) {
//				boolean iscreat = PHOTO_DIR.mkdirs();// 创建照片的存储目录
//				Log.e("YAO", "" + iscreat);
//			}
//			FileName = System.currentTimeMillis() + ".jpg";
//			mCurrentPhotoFile = new File(PHOTO_DIR, FileName);
//			final Intent intent = getTakePickIntent(mCurrentPhotoFile);
//			startActivityForResult(intent, CAMERA_WITH_DATA);
//		} catch (ActivityNotFoundException e) {
//			Toast.makeText(this, "photoPickerNotFoundText", Toast.LENGTH_LONG)
//					.show();
//		}
//	}
//
//	public static Intent getTakePickIntent(File f) {
//		Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, null);
//		intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
//		return intent;
//	}
//
//	/**
//	 * 用当前时间给取得的图片命名,该方法调用后不能获得照片
//	 * 
//	 */
//	private String getPhotoFileName() {
//		Date date = new Date(System.currentTimeMillis());
//		SimpleDateFormat dateFormat = new SimpleDateFormat(
//				"'IMG'_yyyy-MM-dd HH:mm:ss");
//		return dateFormat.format(date) + ".jpg";
//	}
//
//	// 请求Gallery程序
//	protected void doPickPhotoFromGallery() {
//		try {
//			final Intent intent = getPhotoPickIntent();
//			startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);
//		} catch (ActivityNotFoundException e) {
//			Toast.makeText(this, R.string.photoPickerNotFoundText,
//					Toast.LENGTH_LONG).show();
//		}
//	}
//
//	// // 封装请求Gallery的intent
//	public static Intent getPhotoPickIntent() {
//		Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
//		intent.setType("image/*");
//		return intent;
//	}
//
//	// 因为调用了Camera和Gally所以要判断他们各自的返回情况,他们启动时是这样的startActivityForResult
//	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//		if (resultCode != RESULT_OK)
//			return;
//		switch (requestCode) {
//		case PHOTO_PICKED_WITH_DATA:
//			Uri uri = data.getData();
//			selectedImagePath = getPath(uri);
//
//			
//
//			break;
//		case CAMERA_WITH_DATA:
//
//			
//			selectedImagePath = PHOTO_DIR + "/" + FileName;
//			break;
//		}
//		if (selectedImagePath != null) {
//			
//			BitmapFactory.Options options = new BitmapFactory.Options(); 
//            options.inSampleSize = 6; 
//            Bitmap  photo = BitmapFactory.decodeFile(selectedImagePath, options); 
//            int degree = readPictureDegree(selectedImagePath); 
//           
//            Bitmap  bitmap =rotaingImageView(degree, photo);  
//            imageViewPhoto.setImageBitmap(bitmap); 
//            saveCamera(bitmap,false);
//			send.setVisibility(0);
//			
//			
//			send.setOnClickListener(new OnClickListener() {
//
//				@Override
//				public void onClick(View arg0) {
//					// TODO Auto-generated method stub
//					finish();
//				}
//			});
//		}
//	}
//
//	 public static Bitmap rotaingImageView(int angle , Bitmap bitmap) {  
//	        //旋转图片 动作   
//	        Matrix matrix = new Matrix();;  
//	        matrix.postRotate(angle);  
//	        System.out.println("angle2=" + angle);  
//	        // 创建新的图片   
//	        Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,  
//	                bitmap.getWidth(), bitmap.getHeight(), matrix, true);  
//	        return resizedBitmap;  
//	    }
//	 
//	 
//	 public static int readPictureDegree(String path) {  
//	       int degree  = 0;  
//	       try {  
//	               ExifInterface exifInterface = new ExifInterface(path);  
//	               int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);  
//	               switch (orientation) {  
//	               case ExifInterface.ORIENTATION_ROTATE_90:  
//	                       degree = 90;  
//	                       break;  
//	               case ExifInterface.ORIENTATION_ROTATE_180:  
//	                       degree = 180;  
//	                       break;  
//	               case ExifInterface.ORIENTATION_ROTATE_270:  
//	                       degree = 270;  
//	                       break;  
//	               }  
//	       } catch (IOException e) {  
//	               e.printStackTrace();  
//	       }  
//	       return degree;  
//	   }  
//
//	
//	/**
//	 * 获取访问SD卡中图片路径
//	 * 
//	 * @return
//	 */
//	public String getPath(Uri uri) {
//		String[] projection = { MediaStore.Images.Media.DATA };
//		Cursor cursor = managedQuery(uri, projection, null, null, null);
//		int column_index = cursor
//				.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
//		cursor.moveToFirst();
//		return cursor.getString(column_index);
//	}
//
//
//
//	private void saveCamera(Bitmap theBmp, boolean recycle) {
//		byte[] data = null;
//		try {
//			ByteArrayOutputStream bytes = new ByteArrayOutputStream();
//			theBmp.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
//			data = bytes.toByteArray();
//			bytes.close();
//			if (recycle)
//				theBmp.recycle();
//		} catch (Exception e) {
//			if (theBmp != null)
//				theBmp.recycle();
//		}
//		theBmp = null;
//		// make URI to save image
//		SimpleDateFormat timeStampFormat = new SimpleDateFormat(
//				"yyyyMMddhh.mm.ss");
//		String filename = timeStampFormat.format(new Date());
//		filename = filename + ".jpg";
//		ContentValues values = new ContentValues();
//		values.put(Media.TITLE, filename);
//		values.put(Media.DISPLAY_NAME, filename);
//		values.put(Media.DESCRIPTION, "Image capture by camera");
//		values.put(Media.MIME_TYPE, "image/jpeg");
//
//		String directory = BizApp.getInstance().getFilePath();
//		String filepath = directory + "/" + filename;
//		values.put("_data", filepath);
//		imgUri = getContentResolver()
//				.insert(Media.EXTERNAL_CONTENT_URI, values);
//
//		try {
//			OutputStream filoutputStream = getContentResolver()
//					.openOutputStream(imgUri);
//			filoutputStream.write(data);
//			filoutputStream.flush();
//			filoutputStream.close();
//
//		} catch (Exception ex) {
//			imgUri = null;
//			Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
//		}
//		data = null;
//		System.gc();
//		Bundle bundle = getIntent().getExtras();
//		int item_id = bundle.getInt(PersistentKeyUtil.TEMPLATE_ITEM_ID, 0);
//		if (StringUtil.isEmptyOrNull(PrefsUtils.getReportImagePath())) {
//			PrefsUtils.setReportImagePath(item_id + "," + filepath);
//		} else {
//			String[] str = PrefsUtils.getReportImagePath().split(";");
//			StringBuffer sbf = new StringBuffer();
//			boolean flag = false;
//			for (int i = 0; i < str.length; i++) {
//				if (str[i].indexOf(item_id + ",") != -1) {
//					sbf.append(item_id + "," + filepath + ";");
//					flag = true;
//				} else {
//					sbf.append(str[i] + ";");
//				}
//			}
//			if (flag) {
//				PrefsUtils.setReportImagePath(sbf.toString());
//			} else {
//				PrefsUtils.setReportImagePath(sbf.toString() + item_id + ","
//						+ filepath);
//			}
//		}
//
//		PrefsUtils.setReportImagePathOne(filepath);
//
//		
//	}
//}
